Skip to content

Update Corning 3603 with empirical cLLD height_volume_data#948

Merged
BioCam merged 4 commits intoPyLabRobot:mainfrom
BioCam:update-Corning-3603-with-height_volume_data
Mar 20, 2026
Merged

Update Corning 3603 with empirical cLLD height_volume_data#948
BioCam merged 4 commits intoPyLabRobot:mainfrom
BioCam:update-Corning-3603-with-height_volume_data

Conversation

@BioCam
Copy link
Collaborator

@BioCam BioCam commented Mar 20, 2026

Migrate Cor_96_wellplate_360ul_Fb (Corning 3603) from the old geometry-based compute_volume_from_height / compute_height_from_volume closure functions to a first-class height_volume_data dict (introduced in #938), populated with empirical cLLD measurements taken on a Hamilton STAR.

The Problem

The previous model used calculate_liquid_volume_container_1segment_round_fbottom — a pure cylinder approximation with constant diameter d=6.86 mm. According to the Corning tech drawing (DWG00121 Rev D), the well actually tapers from ⌀6.35 mm (bottom) to ⌀6.86 mm (top) over a 10.67 mm depth — a frustum, not a cylinder.

Even the geometrically correct frustum model overestimates volume by +2 to +16 µL across the working range compared to empirical measurements. This is expected: injection-molded polystyrene wells don't follow perfect mathematical geometry — wall draft angles, fillet radii at the bottom-wall junction, and material shrinkage all contribute to deviations that no closed-form model can capture.

The Corning 3603 is actually a good case study because the well geometry is theoretically perfectly understood (frustum of a cone with known top/bottom diameters), yet still shows systematic deviation from the physical reality. The cylinder model (old) overestimates by +12 to +45 µL (+12–25%), while the frustum cross-reference overestimates by +2 to +16 µL (+4–8%). Only empirical calibration data can close this gap.

There may be small measurement errors in the empirical data (cLLD detection edge, meniscus effects at low volumes), but piecewise-linear interpolation over 9 calibration points at pipettable volumes provides far better accuracy than any geometric model.

PR Content/Solution

  • Removed the two _compute_*_Cor_96_wellplate_360ul_Fb closure functions and unused calculate_liquid_*_1segment_round_fbottom imports.
  • Added _cor_96_wellplate_360ul_Fb_height_volume_data dict with 10 empirical calibration points (height mm → volume µL) measured via cLLD on a Hamilton STAR:
    • Dead volume at 0.45 mm / 20 µL (covers full flat bottom + LLD-detectable)
    • 8 working-range points at pipettable volumes (50–350 µL)
    • Max fill at 10.95 mm / 360 µL
  • Passed height_volume_data= to the Well constructor, leveraging the auto-generation from Add height_volume_data attribute to Container with piecewise-linear interpolation #938.

Cylinder vs Frustum vs Empirical comparison

cor_3603_height_volume_comparison

OLD: Cylinder model (d=6.86 mm) — replaced
REF: Frustum model (⌀6.35→6.86 mm) — cross-reference from tech drawing
NEW: Empirical (cLLD-measured) — replacement

🤖 Generated with Claude Code

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants